IF exists(SELECT * FROM dbo.sysobjects WHERE name='survToezichtOverzichtDatum' AND xtype='FN') 
BEGIN
	DROP FUNCTION survToezichtOverzichtDatum
END
GO

CREATE  function survToezichtOverzichtDatum
(@datum varchar(20))
returns table
as
return
(
select distinct s.naamcode,c.categorie,s.dag,
	l.voornaam+' '+l.achternaam as volleNaam,d.weekdag,
        afwezig=case when a.m like '1' then 'X' else '' end,
	d.datum
from
(
select convert(datetime,@datum,103) as datum,weekdag=case when datepart(dw,convert(datetime,@datum,103))=2 then 'maandag'
		    when datepart(dw,convert(datetime,@datum,103))=3 then 'dinsdag'
		    when datepart(dw,convert(datetime,@datum,103))=4 then 'woensdag'
		    when datepart(dw,convert(datetime,@datum,103))=5 then 'donderdag'
		    when datepart(dw,convert(datetime,@datum,103))=6 then  'vrijdag'  end) as d
left join  survLeraars as s
on d.weekdag=s.dag
left join survCategorie as c
on s.categorie=c.categorieNr
left join leraars as l
on s.naamcode=l.naamcode
left join survLeraarsAfwezig as a
on a.naamcode=s.naamcode and a.datum like convert(datetime,@datum,103)
where c.categorie is not null
union
select distinct s.naamcode,c.categorie,s.dag,
	l.voornaam+' '+l.achternaam as volleNaam,d.weekdag,
        afwezig=case when a.m like '1' then 'X' else '' end,
	d.datum
from
(
select convert(datetime,@datum,103) as datum,weekdag=case when datepart(dw,convert(datetime,@datum,103))=2 then 'maandag'
		    when datepart(dw,convert(datetime,@datum,103))=3 then 'dinsdag'
		    when datepart(dw,convert(datetime,@datum,103))=4 then 'woensdag'
		    when datepart(dw,convert(datetime,@datum,103))=5 then 'donderdag'
		    when datepart(dw,convert(datetime,@datum,103))=6 then  'vrijdag'  end) as d
left join  survLeraars as s
on d.weekdag=s.dag2
left join survCategorie as c
on s.categorie2=c.categorieNr
left join leraars as l
on s.naamcode=l.naamcode
left join survLeraarsAfwezig as a
on a.naamcode=s.naamcode and a.datum like convert(datetime,@datum,103)
where c.categorie is not null
)